package com.blog.check.check;

import com.blog.service.service.BaseService;
import org.apache.commons.lang3.StringUtils;

import java.util.regex.Pattern;
/**
 * 业务处理检查基类
 *
 * @author HCK
 * @date 2018年5月7日
 */
public class BaseCheck extends BaseService {


    /**
     * 正则表达式：手机号验证<br>
     * 大陆手机号码11位数，匹配格式：前三位固定格式+后8位任意数 <br>
     * 此方法中前三位格式有： <br>
     * 13+任意数 <br>
     * 15，19+除4的任意数<br>
     * 18+除1和4的任意数 <br>
     * 17+除9的任意数 <br>
     * 147
     */
    public static final String REGEX_MOBILE = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$";

    /**
     * 正则表达式：验证邮箱
     */
    public static final String REGEX_EMAIL = "^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";



    /**
     * 是有效的手机号码
     * 校验手机号
     *
     * @param mobileNo 手机号
     * @return 校验通过返回true，否则返回false
     */
    public boolean isValidMobileNo(String mobileNo) {
        return Pattern.matches(REGEX_MOBILE, mobileNo);
    }

    /**
     * 校验邮箱
     *
     * @param email
     *            邮箱
     * @return 校验通过返回true，否则返回false
     */
    public boolean isVaildEmail(String email) {
        return Pattern.matches(REGEX_EMAIL, email);
    }

    /**
     * 校验图片
     *
     * @param iconBase64
     *            图片
     * @return 校验通过返回true，否则返回false
     */
    public CheckResult checkSuffix(String iconBase64) {
        if (iconBase64 != null) {
            String prefix = StringUtils.substringBefore(iconBase64, ",");
            if (!StringUtils.equalsIgnoreCase(prefix, "data:image/jpeg;base64")
                    && !StringUtils.equalsIgnoreCase(prefix, "data:image/x-icon;base64")
                    && !StringUtils.equalsIgnoreCase(prefix, "data:image/png;base64")
                    && !StringUtils.equalsIgnoreCase(prefix, "data:image/gif;base64")) {
                String msg = "图标格式不正确，后缀名必须为.jpg或.icon或.gif或.png。";
                return CheckResult.failure(500,msg);
            }
        }
        return CheckResult.success();
    }
}
